<html>
<style>
  table, th, td {
     border: 1px solid rgb(200,200,200);
     border-collapse: collapse;
     }
  table {
     table-layout: fixed;
     width: 1900px;
     }
  td {
     overflow-x: auto;
     }
  th, td {
    padding: 15px;
    text-align: left;
    vertical-align: middle;
    }
  .comments {
    color: #292;
    }
  .source-code {
    color: #22F;
    }
  .interface-parent {
    color: #AAA;
    }
  .interface-name {
    color: #000;
    }
  .check-mark {
    text-align: center;
    }
</style>
<body>
<br>

<h1>DJI Mobile SDK 4.5.0 to 4.5.1 Differences</h1>

<br>

<h2>API changes</h2>

<table class="diff-table"><tr valign="top"><td width=15%><font color="#000">4.5.0 Parent and Name</font></td><td width=15%><font color="#000">4.5.0 Code</font></td><td width=15%><font color="#000">4.5.1 Parent and Name</font></td><td width=15%><font color="#000">4.5.1 Code</font></td><td width=3%><font color="#000">Parent</font></td><td width=3%><font color="#000">Name</font></td><td width=3%><font color="#000">Type</font></td><td width=3%><font color="#000">Param</font></td><td width=3%><font color="#000">Return</font></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.FlyZoneManager.</span><span class="interface-name">loadCustomUnlockZonesFromServer</span></td><td width=15%><span class="source-code">void loadCustomUnlockZonesFromServer(final CompletionCallback callback) </span></td><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.FlyZoneManager.</span><span class="interface-name">reloadUnlockedZoneGroupsFromServer</span></td><td width=15%><span class="source-code">void reloadUnlockedZoneGroupsFromServer(final CompletionCallback callback) </span></td><td width=3%></td><td width=3%><div class="check-mark">X</div></td><td width=3%></td><td width=3%></td><td width=3%></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.FlyZoneManager.</span><span class="interface-name">getUnlockedFlyZones</span></td><td width=15%><span class="source-code">void getUnlockedFlyZones(@NonNull final CompletionCallbackWith&lt;List&lt;FlyZoneInformation&gt;&gt; callback) </span></td><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.FlyZoneManager.</span><span class="interface-name">getUnlockedFlyZonesForAircraft</span></td><td width=15%><span class="source-code">void getUnlockedFlyZonesForAircraft(@NonNull final CompletionCallbackWith&lt;List&lt;FlyZoneInformation&gt;&gt; callback) </span></td><td width=3%></td><td width=3%><div class="check-mark">X</div></td><td width=3%></td><td width=3%></td><td width=3%></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.FlyZoneManager.</span><span class="interface-name">getCustomUnlockZones</span></td><td width=15%><span class="source-code">void getCustomUnlockZones(final CompletionCallbackWith&lt;List&lt;CustomUnlockZone&gt;&gt; callback) </span></td><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.FlyZoneManager.</span><span class="interface-name">getCustomUnlockZonesFromAircraft</span></td><td width=15%><span class="source-code">void getCustomUnlockZonesFromAircraft(final CompletionCallbackWith&lt;List&lt;CustomUnlockZone&gt;&gt; callback) </span></td><td width=3%></td><td width=3%><div class="check-mark">X</div></td><td width=3%></td><td width=3%></td><td width=3%></td></tr></table><br>

<h2>APIs removed from 4.5.0</h2>

<table class="diff-table"><tr valign="top"><td width=15%><font color="#000">Parent and Name</font></td><td width=15%><font color="#000">Code</font></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.useraccount.UserAccountState.</span><span class="interface-name">INVALID_TOKEN</span></td><td width=15%><span class="source-code">    INVALID_TOKEN(0x4)</span></td></tr></table><br>

<h2>APIs added to 4.5.1</h2>

<table class="diff-table"><tr valign="top"><td width=15%><font color="#000">Parent and Name</font></td><td width=15%><font color="#000">Code</font></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.camera.</span><span class="interface-name">StabilizationState</span></td><td width=15%><span class="source-code">class StabilizationState </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.camera.StabilizationState.</span><span class="interface-name">StabilizationPauseReason</span></td><td width=15%><span class="source-code">static enum StabilizationPauseReason </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.camera.StabilizationState.StabilizationPauseReason.</span><span class="interface-name">CAMERA_CHANGING</span></td><td width=15%><span class="source-code">        CAMERA_CHANGING(1)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.camera.StabilizationState.StabilizationPauseReason.</span><span class="interface-name">DRONE_MOVING</span></td><td width=15%><span class="source-code">        DRONE_MOVING(3)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.camera.StabilizationState.StabilizationPauseReason.</span><span class="interface-name">GIMBAL_MOVING</span></td><td width=15%><span class="source-code">        GIMBAL_MOVING(2) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.camera.StabilizationState.StabilizationPauseReason.</span><span class="interface-name">OTHER</span></td><td width=15%><span class="source-code">        OTHER(0xFF)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.camera.StabilizationState.StabilizationPauseReason.</span><span class="interface-name">TAP_GO</span></td><td width=15%><span class="source-code">        TAP_GO(5)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.camera.StabilizationState.StabilizationPauseReason.</span><span class="interface-name">TRACKING</span></td><td width=15%><span class="source-code">        TRACKING(4)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.camera.StabilizationState.StabilizationPauseReason.</span><span class="interface-name">UNCHARACTERISTIC</span></td><td width=15%><span class="source-code">        UNCHARACTERISTIC(0)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.camera.StabilizationState.</span><span class="interface-name">StabilizationState</span></td><td width=15%><span class="source-code">StabilizationState(boolean isActive, boolean isPaused, StabilizationPauseReason reason) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.camera.StabilizationState.</span><span class="interface-name">getPauseReason</span></td><td width=15%><span class="source-code">StabilizationPauseReason getPauseReason() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.camera.StabilizationState.</span><span class="interface-name">isActive</span></td><td width=15%><span class="source-code">boolean isActive() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.camera.StabilizationState.</span><span class="interface-name">isPaused</span></td><td width=15%><span class="source-code">boolean isPaused() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlySafeError.</span><span class="interface-name">UNLOCKED_RECORD_NOT_FIND_ON_AIRCRAFT</span></td><td width=15%><span class="source-code">static final DJIFlySafeError UNLOCKED_RECORD_NOT_FIND_ON_AIRCRAFT = new DJIFlySafeError("Could not find unlocked record on the aircraft.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.</span><span class="interface-name">FixedWingControl</span></td><td width=15%><span class="source-code">enum FixedWingControl </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.FixedWingControl.</span><span class="interface-name">ENTER</span></td><td width=15%><span class="source-code">    ENTER(1)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.FixedWingControl.</span><span class="interface-name">EXIT</span></td><td width=15%><span class="source-code">    EXIT(2)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.FixedWingControl.</span><span class="interface-name">OTHER</span></td><td width=15%><span class="source-code">    OTHER(100)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.FixedWingControl.</span><span class="interface-name">READY</span></td><td width=15%><span class="source-code">    READY(0)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.</span><span class="interface-name">UrgentStopMotorMode</span></td><td width=15%><span class="source-code">enum UrgentStopMotorMode </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.UrgentStopMotorMode.</span><span class="interface-name">CSC</span></td><td width=15%><span class="source-code">    CSC(0)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.UrgentStopMotorMode.</span><span class="interface-name">IN_OUT_ALWAYS</span></td><td width=15%><span class="source-code">    IN_OUT_ALWAYS(2)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.UrgentStopMotorMode.</span><span class="interface-name">IN_OUT_WHEN_BREAKDOWN</span></td><td width=15%><span class="source-code">    IN_OUT_WHEN_BREAKDOWN(3)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.UrgentStopMotorMode.</span><span class="interface-name">NEVER</span></td><td width=15%><span class="source-code">    NEVER(1)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.UrgentStopMotorMode.</span><span class="interface-name">UNKNOWN</span></td><td width=15%><span class="source-code">    UNKNOWN(0xff)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.</span><span class="interface-name">VisionDrawHeadingMode</span></td><td width=15%><span class="source-code">enum VisionDrawHeadingMode </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.VisionDrawHeadingMode.</span><span class="interface-name">FORWARD</span></td><td width=15%><span class="source-code">    FORWARD(1)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.VisionDrawHeadingMode.</span><span class="interface-name">FREE</span></td><td width=15%><span class="source-code">    FREE(0)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.VisionDrawHeadingMode.</span><span class="interface-name">UNKNOWN</span></td><td width=15%><span class="source-code">    UNKNOWN (0xFF)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.</span><span class="interface-name">VisionDrawStatus</span></td><td width=15%><span class="source-code">enum VisionDrawStatus </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.VisionDrawStatus.</span><span class="interface-name">INIT</span></td><td width=15%><span class="source-code">    INIT(0)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.VisionDrawStatus.</span><span class="interface-name">OTHER</span></td><td width=15%><span class="source-code">    OTHER(100)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.VisionDrawStatus.</span><span class="interface-name">PAUSE</span></td><td width=15%><span class="source-code">    PAUSE(5)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.VisionDrawStatus.</span><span class="interface-name">PREPARE</span></td><td width=15%><span class="source-code">    PREPARE(1)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.VisionDrawStatus.</span><span class="interface-name">READY_TO_GO</span></td><td width=15%><span class="source-code">    READY_TO_GO(2)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.VisionDrawStatus.</span><span class="interface-name">START_AUTO</span></td><td width=15%><span class="source-code">    START_AUTO(3)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.VisionDrawStatus.</span><span class="interface-name">START_MANUAL</span></td><td width=15%><span class="source-code">    START_MANUAL(4)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.flyzone.</span><span class="interface-name">UnlockedZoneGroup</span></td><td width=15%><span class="source-code">class UnlockedZoneGroup </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.flyzone.UnlockedZoneGroup.</span><span class="interface-name">getSn</span></td><td width=15%><span class="source-code">String getSn() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.flyzone.UnlockedZoneGroup.</span><span class="interface-name">getCustomUnlockZones</span></td><td width=15%><span class="source-code">List&lt;CustomUnlockZone&gt; getCustomUnlockZones() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.flyzone.UnlockedZoneGroup.</span><span class="interface-name">getSelfUnlockedFlyZones</span></td><td width=15%><span class="source-code">List&lt;FlyZoneInformation&gt; getSelfUnlockedFlyZones() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.FlyZoneManager.</span><span class="interface-name">getLoadedUnlockedZoneGroups</span></td><td width=15%><span class="source-code">void getLoadedUnlockedZoneGroups(final CommonCallbacks.CompletionCallbackWith&lt;List&lt;UnlockedZoneGroup&gt;&gt; callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.FlyZoneManager.</span><span class="interface-name">syncUnlockedZoneGroupToAircraft</span></td><td width=15%><span class="source-code">void syncUnlockedZoneGroupToAircraft(final CompletionCallback callback) </span></td></tr></table><p style="font-size:50%; color:white">1f8f043 5d1a15d f72c0f6 2219ea7 </p></body>
</html>

